Installing on Kubernetes
You can install HCL™ Accelerate onto a Kubernetes cluster.
Before you begin
- Docker installed on the host system. Note: If you use Docker for Windows, make sure Docker is using Linux-type containers. HCL™ Accelerate does not support Windows-type containers.
- Internet connection. During installation, files and container images are retrieved from remote
locations. If you are unable to access the internet during installation, you can download the files
beforehand and perform an offline installation.
HCL™ Accelerate supports the following browsers: Chrome, Firefox, and Edge.Note: Steps to retrieve the container images from public repository to your private repository:
Use
pull
command to pull the container images from public repository.$ docker pull public repo
Use
tag
command to tag the public and private repository.$ docker tag public repo private repo
Use
push
command to push container images to private repository.$ docker push private repo
All the container images are retrieved from public to private repository.
If you are performing an offline installation of HCL™ Accelerate, GraphQL Playground will not load for use.
In addition to the requirements for all installation scenarios, the following items are required for Kubernetes or Minikube installation:
- Kubernetes 1.4+ with Beta APIs enabled.
- If you want to use Minikube, it must be installed onto a hypervisor appropriate for your operating system. On Linux you might use Oracle Virtual Box; on Windows you might use Hyper-V.
- The CLI that is used for both Minkube and Kubernetes, Kubectl, installed and configured.
- Helm v2.6.0 or later. Helm is the Kubernetes package manager. Helm uses charts to manage Kubernetes resources, such as those that comprise HCL™ Accelerate.
- MongoDB database installed with a persistent volume. Version 3.6 or later is required. Instructions for installing MongoDB are provided below. Supported MongoDB versions include 3.6, 4.0, and 4.2.
- For Minikube, add the Minikube IP address to your hosts file and assign a host name to it. Kubernetes requires a host name rather than a simple IP address. On Linux, the file location is etc/hosts; on Windows, the location is C:\Windows\System32\drivers\etc\hosts.
- If you are using offline installation, you need 4GB free in your
/tmp
or\temp
directory.
Get a key. The key enables you to complete installation. Visit the HCL™ Accelerate web portal to obtain your key. After completing the form, you will receive a confirmation email with an access key. Store the key in a readily-available location; you use it during installation.
About this task
You install the product by running the installation script that copies the Helm chart to your environment and sets installation parameters. After the script finishes, you run Kubernetes Helm commands that pull the product images from a GitHub repository and place them into the cluster defined in the Helm chart.
Additionally, you connect your installation to a MongoDB, and configure an SSL certificate. If you are using Minikube, you also need to configure an ingress.
If you need to modify project default parameters, installation options are stored in the
\<installation>\values.yaml
file. Other parameters are maintained in the yaml
files in the \<installation>\templates
directory. For example, to configure
ephemeral Argo pods, you can modify the executor parameter in the
.../templates/workflow-controller-configmap.yaml
file.
Procedure
-
Download the installation file for your environment.
Note: For macOS and Linux installations, set the appropriate permissions before running the file:
sudo chmod +x
. - Run the downloaded executable file.
-
Run the installation script and respond to the prompts as described in the following
steps.
When the script starts, you are prompted to accept the license. You can explicitly accept the license without viewing it by appending the following parameter to the command:
./<accelerate-installation-file> --license=accept
The Helm chart is copied to/my_installation/version_number/velocity-version.tgz
. The installation properties are saved in a file located at/home/ucv/settings.json
. -
If you do not have a MongoDB database installed, install one now. Follow the instructions at
the MongoDB GitHub repository.
Below is a sample command for installing the MongoDB version 3.6:
helm install velocity-mongo --set persistence.enabled=false, mongodbRootPassword=password --set image.tag=3.6 bitnami/mongodb
Note: To install MongoDB version 4.0, change the--set image.tag=4.0
Note: To install MongoDB version 4.2, change the--set image.tag=4.2
Note: If Helm cannot find the chart, try running the following command:helm repo add bitnami https://charts.bitnami.com/bitnami
. If your organization uses a different repository, substitute it forbitnami/mongodb
.To verify the installation, you can use the following commands:helm list
helm status velocity-mongo
To list all pods in the namespace, use the following command:
kubectl get pods
After the installation of MongoDB, use the below command to get the encrypted passwordkubectl get secrets velocity-mongo-mongodb -o yaml
Search for the field
mongodb-root-password:
in encrypted password.Use the command
echo -n "enter the mongodb-root-password" | base64 --decode
to decrypt the encrypted password.Use decrypted password to connect the application.
-
Create an SSL certificate and key and store them in the
velocity-secret.yml file.
-
Enable your ingress and ensure that it points to your host by completing these steps:
-
Note: If you are installing HCL™ Accelerate in amazon elastic kubernetes service cluster, change the version of the kube fromDetermine the configuration properties for the helm install command.
kubeVersion:'>=1.11.0'
tokubeVersion:'>=1.11.0-r0'
inchart.yml
file.Thevalues.yaml
file is located in/my_installation/version_number/velocity-version.tgz
. The following code fragment displays a typical command:helm install uc-velocity \ ./velocity-<version>-helm.tgz \ --set access.key=my_access_key \ --set license=accept \ --set url.domain=my_hostname \ --set mongo.url=mongodb://mongo:mongo@velocity-mongo-mongodb:27017 --set license=accept
Properties depend on your environment. The following properties are required. The optional properties are given later.
- access.key
- The product access key obtained earlier.
- url.domain
-
The hostname of your node or the Ingress host name.
- mongo.url
- The URL of the MongoDB. Specify the following parameters.
- username
- The user ID to authenticate with the MongoDB database. For example, mongo.
- password
- The associated password to authenticate with the MongoDB database. For example, mongo.
- authSource
- If you connect to an authenticated MongoDB database, you can use authSource to specify the database where authenticated users are defined. For example, if the admin user is defined in the admin database, you can use mongodb://root:password@velocity-mongo-mongodb?authSource=admin.
- port
- The port number for the MongoDB database. Use the value shown in the example, which is 27017.
- service_name
- The MongoDB URL or the MongoDB service name if it is running within the Kubernetes cluster. For example, velocity-mongo-mongodb.
- database_name
- The name of the database to be used by HCL™ Accelerate. For example, velocity.
Note: If you used the install command in the previous step to install the MongoDB, use the following values for the mongo.url property.--set mongo.url=mongodb://mongo:mongo@velocity-mongo-mongodb:27017
If you use the default Bitnami MongoDB, make sure to grant the MongoDB user full write privileges.
- name
-
The name space where the Helm chart is applied, and the name of Helm chart. Deprecated for Helm 3.0 or later.
--name uc-velocity ./velocity-<version>-helm.tgz
- Optional:
If you need to enforce limits on resources, modify the executor parameter in the
velocity/templates/workflow-controller-configmap.yaml
file.For example, to limit ephemeral Argo pods, you might use the following parameter values:... data: config: | containerRuntimeExecutor: kubelet namespace: velocity executor: resources: limits: cpu: 1 memory: 2Gi requests: cpu: 50m memory: 512Mi
-
Run the
helm install
command to install the HCL™ Accelerate images into your Kubernetes cluster.After you run the command, Kubernetes displays status information about the installation.Refer to the displayed NOTES section for the location of the Minikube administrator dashboard. You manage your Minikube installation on the admin dashboard.
What to do next
When all the containers have the status of running
, the installation is complete
and you can access
HCL™ Accelerate at the URL you specified in the helm chart. You can refresh the status display by using the
following kubectl command: kubectl get pods
. The default admin user name is
admin and the default password is admin.
The following Helm chart parameters are optional:
- apitoken
- A random string or GUID that is used verify the authenticity of API calls and data.
- license
-
Automates license acceptance. Use the value accept to accept the license.
- ciphertoken
- A 32-byte Hex that is used verify the authenticity of API calls and data.
- hmackey
- A 32-byte Hex that is used verify the authenticity of API calls and data.
- loglevel
-
The level of logging. Values for this property are: all, debug, info, warn, error, fatal, and off. The default is all.